package com.hxh.service;

import com.baomidou.mybatisplus.plugins.Page;
import com.hxh.dao.TemplateFieldConfigDao;
import com.hxh.entity.TemplateFieldConfig;
import com.hxh.entity.input.TemplateFieldConfigInput;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;

import javax.annotation.Resource;
import java.util.List;


@Service
@Transactional
@Slf4j
public class TemplateFieldConfigService {
    @Resource TemplateFieldConfigDao templateFieldConfigDao;


    public boolean insert(TemplateFieldConfigInput pojo) {

        boolean res = templateFieldConfigDao.insert(pojo) > 0;

        return res;
    }

    public int insertList(List<TemplateFieldConfigInput> pojo) {
        if(CollectionUtils.isEmpty(pojo)){
            return 0;
        }

        int res = templateFieldConfigDao.insertList(pojo);
        return res;
    }

    public List<TemplateFieldConfig> select(TemplateFieldConfigInput pojo) {
        return templateFieldConfigDao.select(pojo);
    }

    public boolean deleteById(Integer id){
        return templateFieldConfigDao.deleteById(id) > 0;
    }

    public TemplateFieldConfig selectById(Integer id){
        if(id == null ) {
          return null;
        }
        return templateFieldConfigDao.selectById(id);
    }

    public void listPage(Page<TemplateFieldConfig> page, TemplateFieldConfigInput pojo) {
        page.setRecords(templateFieldConfigDao.listPage(page, pojo));
    }

    public boolean update(TemplateFieldConfigInput pojo) {

        boolean res = templateFieldConfigDao.update(pojo) > 0;

        return res;
    }

    public boolean updateSelective(TemplateFieldConfigInput pojo) {

        int res = templateFieldConfigDao.updateSelective(pojo);
        return res > 0;
    }

    public List<TemplateFieldConfig> getTemplateFieldConfigByTemplateId(Integer templateConfigId) {
        TemplateFieldConfigInput pojo = new TemplateFieldConfigInput();
        pojo.setTemplateId(templateConfigId);
        return templateFieldConfigDao.select(pojo);
    }

    public TemplateFieldConfig getByTemplateIdAndComponentName(Integer templateConfigId, String componentName) {
        TemplateFieldConfigInput pojo = new TemplateFieldConfigInput();
        pojo.setTemplateId(templateConfigId);
        pojo.setComponentName(componentName);
        List<TemplateFieldConfig> list = templateFieldConfigDao.select(pojo);
        if(CollectionUtils.isEmpty(list)) {
            return null;
        }
        return list.get(0);
    }
}
